package com.helloandroid.app.model

import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Typeface
import androidx.core.graphics.TypefaceCompat
import com.cy.game.CyInfo
import com.helloandroid.AppUtil
import com.helloandroid.R
import com.helloandroid.models.BsRecord
import com.helloandroid.vo.*
import com.jf.game.JFInfo
import com.zp.game.ZhuanPanInfo
import org.json.JSONArray
import org.json.JSONObject

// 用来做全局的数据缓存
object AppCache {

    val FkNames = arrayOf(
            "残留***",
            "咆*",
            "绳*",
            "来自*****",
            "一生****",
            "执念****",
            "青瓷*******",
            "呆萌**",
            "可儿**",
            "高冷*****",
            "不浪*****",
            "青楼****",
            "发型*********",
            "龙卷*******",
            "猫腻**",
            "厌归****",
            "醉红***",
            "又落***",
            "桃洛***",
            "请在******",
            "熏染**",
            "巴黎*******",
            "白恍**",
            "我要*******",
            "揉乱****",
            "烟花****",
            "艺菲**",
            "玩味**",
            "秒淘*****",
            "柠栀**",
            "你身*********",
            "旧爱****",
            "如你****",
            "没过********",
            "陌上***",
            "开心******",
            "在哪**********",
            "限量******",
            "蝶恋****",
            "优雅*****",
            "君临***",
            "夏日****",
            "闲肆**",
            "暖瞳**",
            "珠穆******",
            "站上********",
            "断秋***",
            "拥菢**********",
            "安好****",
            "男神****",
            "晨与*****",
            "泡泡***",
            "刺心*****",
            "陌然****",
            "龙吟***",
            "别留****",
            "太易********",
            "烟雨****",
            "伤离***",
            "心贝**",
            "嗯咯**",
            "病房**",
            "罪歌**",
            "久爱****",
            "单身***",
            "人心*****",
            "爱你******",
            "封心****",
            "她的**********",
            "生命*****",
            "红尘****",
            "赋流***",
            "余温*****",
            "無極****",
            "我就********",
            "她最****",
            "窒息**",
            "自繩****",
            "念安***",
            "陌上****",
            "拽年****",
            "虚伪******",
            "嘲笑***",
            "北朽****",
            "命该****",
            "傲世****",
            "浅笑*****",
            "你瞒****",
            "各自*****",
            "墨染****",
            "温柔***",
            "落花****",
            "灵魂*****",
            "莫飞***",
            "疲倦***",
            "若他******",
            "南初**",
            "不忘****",
            "浮光*****",
            "放血**",
            "毒舌****",
            "笑傲****",
            "麝香***",
            "糖果***",
            "熟悉*****",
            "无关****",
            "孤者****",
            "哥帅*******",
            "哭着********",
            "回忆****",
            "莫失****",
            "安之****",
            "从此*********",
            "海盟*******",
            "陌颜****",
            "妄灸**",
            "栀蓝**",
            "剑已****",
            "青山****",
            "逃避**",
            "冷风*****",
            "凉凉*********",
            "墨城****",
            "身影**",
            "隔壁*****",
            "空谷****",
            "入骨****",
            "张三****",
            "万象******",
            "灬一******",
            "容纳*****",
            "坠入*****",
            "巷雨******",
            "孤城****",
            "把孤*****",
            "裸睡****",
            "冷嘲*****",
            "凉城***",
            "醉婉****",
            "冷落*******",
            "初阳**",
            "你与******",
            "念初**",
            "不要*****",
            "作业*********",
            "尘埃****",
            "心脏****",
            "慑人*****",
            "情如****",
            "陌颜**",
            "堕落*****",
            "情深****",
            "淡抹*****",
            "有一************",
            "良人****",
            "无所***",
            "一笑*****",
            "恰十***",
            "敬情**",
            "来自******",
            "心已*****",
            "夏以****",
            "强辩**",
            "青衫****",
            "涐们*********",
            "南宫****",
            "荒野****",
            "瑾澜**",
            "水波****",
            "殃樾***",
            "素衣****",
            "无望******",
            "浅嫣****",
            "冷眼*****",
            "清羽****",
            "汐颜*****",
            "暖栀**",
            "你是*******",
            "寻鱼*****",
            "关于****",
            "龙吟***",
            "喜欢****",
            "繁华****",
            "断桥****",
            "有恃****",
            "像从****",
            "墨城****",
            "轨迹***",
            "未来*****",
            "凝残***",
            "月下****",
            "顶个********",
            "非想**",
            "不离***",
            "服从**",
            "信仰**",
            "惯例**",
            "旧事****",
            "话少****",
            "琴断****",
            "漫长*****",
            "一别****",
            "心亡*****",
            "命里****",
            "终究*****",
            "如梦****",
            "最怕****",
            "哽咽**",
            "抓不****",
            "羁绊***",
            "小清******",
            "孤街****",
            "余笙****",
            "早不****",
            "半世*****",
            "一样****",
            "枫无***",
            "致命***",
            "拉扯**",
            "心安***",
            "凝残***",
            "采姑*******",
            "青衫****",
            "淡写*******",
            "景忧*********",
            "風景****",
            "七级****",
            "肆忌**",
            "孤岛****",
            "淡抹******",
            "巷口****",
            "浅巷***",
            "我没******",
            "枫无***",
            "孤独***",
            "有你******",
            "一尾****",
            "哭花*****",
            "纯情*****",
            "西瓜****",
            "玻璃****",
            "青袂****",
            "最迷*******",
            "等量****",
            "予之****",
            "清原**",
            "米兰**",
            "断秋***",
            "打个*******",
            "一点********",
            "盲从****",
            "长裙****",
            "看我*******",
            "怅惘**",
            "一笑*****",
            "病态*****",
            "眉黛****",
            "我家*********",
            "坏小*****",
            "江山***",
            "灼痛**",
            "花花***********",
            "秘密**",
            "軨倾***",
            "有些**********",
            "逾期****",
            "岁岁****",
            "忘故**",
            "焚心***",
            "泪湿****",
            "安陌****",
            "半梦*****",
            "炙年**",
            "有阳*******",
            "迁心**",
            "别在*******",
            "素婉****",
            "我绝*****",
            "失心****",
            "孤自****",
            "摩天******",
            "柠夏****",
            "雪花*****",
            "孤单******",
            "煮酒**",
            "苏樱***",
            "鹿先*******",
            "仅有*****",
            "伱德*********",
            "我怕********",
            "醉枫****",
            "留我****",
            "减肥*****",
            "笑叹******",
            "陌潇***",
            "浮世****",
            "满心****",
            "执拗****",
            "墨染****",
            "寒山****",
            "昂贵*****",
            "暮染****",
            "素颜****",
            "我的*******",
            "代价******",
            "爱你******",
            "微信****",
            "歇火**",
            "念旧****",
            "搞搞*****",
            "蹂躏****",
            "仰望****",
            "迷路*****",
            "青衫****",
            "见朕*******",
            "愁杀**",
            "千城****",
            "心悸****",
            "残花******",
            "棃海**",
            "纯真********",
            "幸好****",
            "放肆******",
            "孤廖**",
            "相知****",
            "眼角*****",
            "情字*****",
            "折木**",
            "爱情*****",
            "眷恋**",
            "还未****",
            "绝版****",
            "迷路*****",
            "十言***",
            "何年****",
            "颓废****",
            "花开******",
            "花海**",
            "墨城****",
            "淡抹*****",
            "爱到*****",
            "何必*****",
            "滴在*******",
            "命运******",
            "凉话****",
            "发呆**",
            "微信****",
            "大王********",
            "来瓶******",
            "算了***",
            "夜晟***",
            "青墨*****",
            "苏莫***",
            "丢了*****",
            "短发**",
            "挽手*****",
            "此生****",
            "此刻******",
            "命硬**",
            "拥抱**",
            "为爱****",
            "闷骚*******",
            "风中*******",
            "七夏***",
            "古巷****",
            "追忆*****",
            "孤败**",
            "你很******",
            "莫阑***",
            "弃我****",
            "呆檬**",
            "今非****",
            "执妄**",
            "别伤****",
            "矜暮**",
            "凉月*****",
            "空巷**",
            "话扎***",
            "我一****",
            "雨后****",
            "抚涟***",
            "别悲***",
            "箜明**",
            "红玫****",
            "执笔****",
            "百合******",
            "三年***",
            "沐晴***",
            "一个******",
            "独角****",
            "陌離**",
            "回到*****",
            "在哪**********",
            "经典*****",
            "歆久**",
            "黑夜****",
            "颜洛***",
            "墨染****",
            "夏至****",
            "浮殇****",
            "娇眉***",
            "疯人*******",
            "金橙*****",
            "无寒**",
            "败类**",
            "野兽****",
            "烬陌***",
            "怀念*****",
            "暮光****",
            "花菲**",
            "冷青***",
            "烟雨****",
            "一纸*****",
            "日久*****",
            "酒笙****",
            "淡淡*****",
            "杰克**",
            "半梦*******",
            "志平**",
            "屌国****",
            "寂莫**",
            "面瘫***",
            "红尘****",
            "铁树******",
            "权诈**",
            "余温*****",
            "遗憾*****",
            "稳妥**",
            "念旧******",
            "鹿叹**",
            "不识*****",
            "抚笙**",
            "你的*******",
            "苍白*****",
            "凉笙****",
            "封锁****",
            "陌上***",
            "那伤*****",
            "该用******",
            "伪心**",
            "将妓****",
            "蔚蓝************",
            "巷陌*****",
            "箜篌***",
            "反正****",
            "一生******",
            "莫名*****",
            "北染****",
            "聽風**",
            "全网*****",
            "走过*****",
            "葵雨**",
            "微信****",
            "惦着*******",
            "雁過****",
            "神经*****",
            "几妆***",
            "掉眼***",
            "冷月****",
            "太难**",
            "花容****",
            "颓废***",
            "怪咖**",
            "娇眉***",
            "不相*",
            "经年********",
            "肆虐********",
            "黛文********",
            "潮牌********",
            "深空**********",
            "纯二**********",
            "浅时**********",
            "午夜**********",
            "安于**********",
            "墨尔**********",
            "巴黎**********",
            "纽约**********",
            "明眸**********",
            "浮夸********",
            "玩心******",
            "局外*********",
            "小闹**********",
            "浅时**********",
            "控心********",
            "伤痕*************",
            "情以*********",
            "离瑰**********",
            "忌光**********",
            "孤岛**********",
            "心控*********",
            "厌世*********",
            "空白***********",
            "浮夸********",
            "失夜**********",
            "世纪**********",
            "丶s********",
            "情绪**********",
            "遗忘**********",
            "弥*",
            "浮夸********",
            "拾忆***********",
            "失心*********",
            "半生************",
            "失控******",
            "素颜*************",
            "失控***********",
            "晨歌*********",
            "失控*********",
            "半生************",
            "时光*********",
            "失心*******",
            "念、*******",
            "假戏*********",
            "一个*",
            "李*",
            "王*",
            "张*",
            "刘*",
            "陈*",
            "杨*",
            "赵*",
            "黄*",
            "周*",
            "吴*",
            "徐*",
            "孙*",
            "胡*",
            "朱*",
            "高*",
            "林*",
            "何*",
            "郭*",
            "马*",
            "罗*",
            "梁*",
            "宋*",
            "谢*",
            "郑*",
            "韩*",
            "唐*",
            "冯*",
            "于*",
            "董*",
            "萧*",
            "程*",
            "曹*",
            "袁*",
            "邓*",
            "许*",
            "傅*",
            "沈*",
            "曾*",
            "彭*",
            "吕*",
            "苏*",
            "卢*",
            "蒋*",
            "蔡*",
            "贾*",
            "丁*",
            "魏*",
            "薛*",
            "叶*",
            "阎*",
            "余*",
            "潘*",
            "杜*",
            "戴*",
            "夏*",
            "锺*",
            "汪*",
            "田*",
            "任*",
            "姜*",
            "范*",
            "方*",
            "石*",
            "姚*",
            "谭*",
            "廖*",
            "邹*",
            "熊*",
            "金*",
            "陆*",
            "郝*",
            "孔*",
            "白*",
            "崔*",
            "康*",
            "毛*",
            "邱*",
            "秦*",
            "江*",
            "史*",
            "顾*",
            "侯*",
            "邵*",
            "孟*",
            "龙*",
            "万*",
            "段*",
            "雷*",
            "钱*",
            "汤*",
            "尹*",
            "黎*",
            "易*",
            "常*",
            "武*",
            "乔*",
            "贺*",
            "赖*",
            "龚*",
            "文*",
            "李**",
            "王**",
            "张**",
            "刘**",
            "陈**",
            "杨**",
            "赵**",
            "黄**",
            "周**",
            "吴**",
            "徐**",
            "孙**",
            "胡**",
            "朱**",
            "高**",
            "林**",
            "何**",
            "郭**",
            "马**",
            "罗**",
            "梁**",
            "宋**",
            "谢**",
            "郑**",
            "韩**",
            "唐**",
            "冯**",
            "于**",
            "董**",
            "萧**",
            "程**",
            "曹**",
            "袁**",
            "邓**",
            "许**",
            "傅**",
            "沈**",
            "曾**",
            "彭**",
            "吕**",
            "苏**",
            "卢**",
            "蒋**",
            "蔡**",
            "贾**",
            "丁**",
            "魏**",
            "薛**",
            "叶**",
            "阎**",
            "余**",
            "潘**",
            "杜**",
            "戴**",
            "夏**",
            "锺**",
            "汪**",
            "田**",
            "任**",
            "姜**",
            "范**",
            "方**",
            "石**",
            "姚**",
            "谭**",
            "廖**",
            "邹**",
            "熊**",
            "金**",
            "陆**",
            "郝**",
            "孔**",
            "白**",
            "崔**",
            "康**",
            "毛**",
            "邱**",
            "秦**",
            "江**",
            "史**",
            "顾**",
            "侯**",
            "邵**",
            "孟**",
            "龙**",
            "万**",
            "段**",
            "雷**",
            "钱**",
            "汤**",
            "尹**",
            "黎**",
            "易**",
            "常**",
            "武**",
            "乔**",
            "贺**",
            "赖**",
            "龚**",
            "文**",
            "always**",
            "hunter**",
            "cameron**",
            "zachary**",
            "austin**",
            "eli**",
            "blake**",
            "oliver**",
            "aidan**",
            "hayden**",
            "thomas**",
            "charles**",
            "carlos**",
            "antonio**",
            "harlean**",
            "goodnight**",
            "sunny**",
            "emily**",
            "shirley**",
            "vivian**",
            "joyce**",
            "andy**",
            "nancy**",
            "candy**",
            "outsider**",
            "able****",
            "acid****",
            "angry****",
            "automatic****",
            "awake****",
            "bad****",
            "beautiful****",
            "bent****",
            "bitter****",
            "black****",
            "blue****",
            "boiling****",
            "bright****",
            "broken****",
            "brown****",
            "certain****",
            "cheap****",
            "chemical****",
            "chief****",
            "clean****",
            "clear****",
            "cold****",
            "common****",
            "complete****",
            "complex****",
            "conscious****",
            "cruel****",
            "cut****",
            "dark****",
            "dead****",
            "dear****",
            "deep****",
            "delicate****",
            "dependent****",
            "different****",
            "dirty****",
            "dry****",
            "early****",
            "elastic****",
            "electric****",
            "equal****",
            "false****",
            "fat****",
            "feeble****",
            "female****",
            "fertile****",
            "first****",
            "fixed****",
            "flat****",
            "foolish ****",
            "free****",
            "frequent****",
            "full****",
            "future****",
            "general****",
            "good****",
            "grey****",
            "great****",
            "green****",
            "hanging****",
            "happy****",
            "hard****",
            "healthy****",
            "high****",
            "hollow****",
            "ill****",
            "important****",
            "kind****",
            "last****",
            "late****",
            "left****",
            "like****",
            "living****",
            "long****",
            "loose****",
            "loud****",
            "low****",
            "male****",
            "married****",
            "material****",
            "medical****",
            "military****",
            "mixed****",
            "narrow****",
            "natural****",
            "necessary****",
            "new****",
            "normal****",
            "old****",
            "open****",
            "opposite****",
            "parallel****",
            "past****",
            "physical****",
            "political****",
            "poor****",
            "possible****",
            "present****",
            "private****",
            "probable****",
            "quick****",
            "quiet****",
            "ready****",
            "red****",
            "regular****",
            "responsible****",
            "right****",
            "rough****",
            "round****",
            "sad****",
            "safe****",
            "same****",
            "second****",
            "secret****",
            "separate****",
            "serious****",
            "sharp****",
            "short****",
            "shut****",
            "simple****",
            "slow****",
            "small****",
            "smooth****",
            "soft****",
            "solid****",
            "special****",
            "sticky****",
            "stiff****",
            "straight****",
            "strange****",
            "strong****",
            "sudden****",
            "sweet****",
            "tall****",
            "thick****",
            "thin****",
            "tight****",
            "tired****",
            "true****",
            "violent****",
            "waiting****",
            "warm****",
            "wet****",
            "white****",
            "wide****",
            "wise****",
            "wrong****",
            "yellow****",
            "young****",
    )

    // 成语的关卡数据. 缓存后不需要清理
    var allLevelJsonArr:JSONArray? = null
    var allExplainJsonObj:JSONObject? = null

    //---------------------------------------------
    // 主界面需要的数据
    var boardInfo:BoardInfo? = null

    // 玩家数据
    var user:User? = null

    // 赚赚里面的数据
    var taskInfo:TaskInfo? = null

    // 早晚打卡 里面需要的数据
    var zaoWanInfo:ZaoWan? = null

    // 喝水打卡 数据
    var heShuiInfo:HeShuiInfo? = null

    //  吃饭数据
    var chiFanInfo:ChiFanInfo? = null

    // 每日运动数据
    var meiRiYunDongInfo:MeiRiYunDongInfo? = null

    // 步数打卡数据
    var bsInfo:BsInfo? = null

    // 转盘数据
    var zpInfo: ZhuanPanInfo? = null

    // 成语数据
    var cyInfo: CyInfo? = null

    // 红包雨数据
    var hbyInfo:HbyInfo? = null

    // 提现
    var txInfo:TxInfo? = null

    // 集福
    var jfInfo : JFInfo? = null

    // 归档需要的数据
    var bsRecords:ArrayList<BsRecord>? = null

    fun init(){
        taskInfo = null
        boardInfo = null
        zaoWanInfo = null
        heShuiInfo = null
        chiFanInfo = null
        meiRiYunDongInfo = null
        bsInfo = null
        zpInfo = null
        hbyInfo = null
        txInfo = null
        jfInfo = null
        bsRecords = null
    }

    fun copyTaskInfo():TaskInfo?{
        if (taskInfo != null){
            return taskInfo!!.deepCopy()
        }
        return null
    }

    fun copyBoardInfo():BoardInfo?{
        if (boardInfo != null){
            return boardInfo!!.deepCopy()
        }
        return null
    }

    fun copyZaoWanInfo():ZaoWan?{
        if (zaoWanInfo != null){
            return zaoWanInfo!!.deepCopy()
        }
        return null
    }

    fun copyHeShuiInfo():HeShuiInfo?{
        if (heShuiInfo != null){
            return heShuiInfo!!.deepCopy()
        }
        return null
    }

    fun copyChiFanInfo():ChiFanInfo?{
        if (chiFanInfo != null){
            return chiFanInfo!!.deepCopy()
        }
        return null
    }

    fun copyMeiRiYunDongInfo():MeiRiYunDongInfo?{
        if (meiRiYunDongInfo != null){
            return  meiRiYunDongInfo!!.deepCopy()
        }
        return null
    }

    fun copyBsInfo():BsInfo?{
        if (bsInfo != null){
            return bsInfo!!.deepCopy()
        }
        return null
    }

    fun copyZpInfo():ZhuanPanInfo?{
        if (zpInfo != null){
            return zpInfo!!.deepCopy()
        }
        return null
    }

    fun copyHbyInfo():HbyInfo?{
        if (hbyInfo != null){
            return hbyInfo!!.deepCopy()
        }
        return  null
    }

    fun copyCyInfo():CyInfo?{
        if (cyInfo != null){
            return  cyInfo!!.deepCopy()
        }
        return  null
    }

    fun copyTxInfo():TxInfo?{
        if (txInfo != null){
            return txInfo!!.deepCopy()
        }
        return null
    }

    fun copyJFInfo():JFInfo?{
        if (jfInfo != null){
            return  jfInfo!!.deepCopy()
        }
        return null
    }

    fun copyBsRecords():ArrayList<BsRecord>?{
        if (bsRecords != null){
            val lst = ArrayList<BsRecord>()
            bsRecords!!.forEach { item->
                lst.add(item.deepCopy())
            }
            return lst
        }
        return null
    }

    // cached font
    var msYaHeiTypeFace:Typeface? = null
    @SuppressLint("RestrictedApi")
    fun getMsYaHeiTypeface():Typeface?{
        return if(msYaHeiTypeFace != null){
            msYaHeiTypeFace
        }else{
            msYaHeiTypeFace =  TypefaceCompat.createFromResourcesFontFile(AppUtil.app,AppUtil.app.resources, R.font.msyhbd,"",Typeface.NORMAL);
            msYaHeiTypeFace
        }
    }
}